package com.itany.corejava.code09_集合.list集合;

import java.util.ArrayList;
import java.util.LinkedList;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年11月20日 15:04
 */
public class Test06_性能对比 {
    public static void main(String[] args) {


        // 访问与向末尾添加数据时
        //         ArrayList效率较高
        // 插入或者删除数据时
        //         LinkedList效率远高于ArrayList
        test01();
        test02();
        test03();
        test04();
    }
    public static void test01(){
        ArrayList<Integer> list=new ArrayList<>();
        long beginTime=System.currentTimeMillis();
        for(int i=0;i<=1000000;i++){
            list.add(i);
        }
        long endTime=System.currentTimeMillis();
        System.out.println("ArrayList向末尾添加了100w条数据共花费了"+(endTime-beginTime)+"毫秒");
    }
    public static void test02(){
        LinkedList<Integer> list=new LinkedList<>();
        long beginTime=System.currentTimeMillis();
        for(int i=0;i<=1000000;i++){
            list.add(i);
        }
        long endTime=System.currentTimeMillis();
        System.out.println("LinkedList向末尾添加了100w条数据共花费了"+(endTime-beginTime)+"毫秒");
    }
    public static void test03(){
        ArrayList<Integer> list=new ArrayList<>();
        long beginTime=System.currentTimeMillis();
        for(int i=0;i<=100000;i++){
            list.add(0,i);
        }
        long endTime=System.currentTimeMillis();
        System.out.println("ArrayList插入了10w条数据共花费了"+(endTime-beginTime)+"毫秒");
    }

    public static void test04(){
        LinkedList<Integer> list=new LinkedList<>();
        long beginTime=System.currentTimeMillis();
        for(int i=0;i<=100000;i++){
            list.add(0,i);
        }
        long endTime=System.currentTimeMillis();
        System.out.println("LinkedList插入了10w条数据共花费了"+(endTime-beginTime)+"毫秒");
    }
}
